/**
 * jims
 */
package com.jims.master.modules.sync.dao;

import com.jims.master.common.persistence.CrudDao;
import com.jims.master.common.persistence.annotation.MyBatisDao;
import com.jims.master.modules.sync.entity.DrugNameDict;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 药品名称字典DAO接口
 * @author 朱齐
 * @version 2017-03-01
 */
@MyBatisDao
public interface DrugNameDictDao extends CrudDao<DrugNameDict> {

    /**
     * 根据药品名称模糊查询药品信息
     * @param drugNameDict
     * @return
     */
    public List<DrugNameDict> selectDrug(DrugNameDict drugNameDict);

    /**
     * 根据药品类别和剂型获取数量
     * @return
     * @author  zhuq
     */
    public int findByCodeNo(DrugNameDict drugNameDict);


    /**
     * 根据药品代码查询药品信息
     * @param drugCode
     * @return
     * @author  CTQ
     */
    public DrugNameDict findByDrugCode(@Param("drugCode") String drugCode);
    /**
     * 加载药品列表
     * @param drugNameDict
     * @return
     * @author
     */
    public List<DrugNameDict> getDrugNameList(DrugNameDict drugNameDict);

    /**
     * 保存查询drugInfo中包含的drugNameDictlist
     * @return
     * @author  zhuq
     */
    public List<DrugNameDict> findListByInfo(DrugNameDict drugNameDict);

    /**
     * 根据药品字典来过滤药品信息
     * @param drugNameDict
     * @return
     */
    public List<DrugNameDict> findPageByDict(DrugNameDict drugNameDict);

    /**
     * @Title: 根据名称、中西药类别查询名称信息--药品导入用
     * @Description: 因为名称一定，那么不管是哪家机构这个中西药类别就肯定是一样的。这个药是中药就是中药。而如果名称一样，那剂型可能就不一样了。比如这个机构这个名称的药剂型是注射剂，而另一个机构相同名称的药品剂型却是注射液。所以不能根据剂型去区分这个药品是否存在
     * @Param: drugName 药品名称
     * @Param: drugIndicator 中西药分类 1西药，2中草药，3中成药，5辅料，6耗材，8材料，9其他
     * @Return: 返回药品名称list集合。一个药品名称可能有多条记录
     * @Author: fengyg
     * @Date: 2017-12-24 下午 03:38
     * version: V1.0
     */
    public List<DrugNameDict> findByNameIndicator(@Param("drugName") String drugName, @Param("drugIndicator") String drugIndicator);
}